﻿
using System;
using System.IO;
using System.Security.Policy; 
//using System.Web.Configuration.MachineKeySection;
using System.Web;

namespace Crypt_Tranceiver
{
    public class FileHash
    {

        //计算文件的MD5码
        public static string getMD5Hash(string pathName)
        {
            string strResult = "";
            string strHashData = "";
 
            byte[] arrbytHashValue;
            System.IO.FileStream oFileStream = null;
 
            System.Security.Cryptography.SHA1CryptoServiceProvider oMD5Hasher =
                       new System.Security.Cryptography.SHA1CryptoServiceProvider();
 
            try
            {
                oFileStream = new System.IO.FileStream(pathName, System.IO.FileMode.Open,
                      System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
                arrbytHashValue = oMD5Hasher.ComputeHash(oFileStream);//计算指定Stream 对象的哈希值
                oFileStream.Close();
                //由以连字符分隔的十六进制对构成的String，其中每一对表示value 中对应的元素；例如“F-2C-4A”
                strHashData = System.BitConverter.ToString(arrbytHashValue);
                //替换-
                strHashData = strHashData.Replace("-", "");
                strResult = strHashData;
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
 
            return strResult;
        }
 
    }



}